home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / t3_1 / risc_src.lha / risc_sources / xlib / xws10.t < prev    next >
Text File  |  1990-06-01  |  44KB  |  973 lines

  1. (HERALD XWS10 (ENV TSYS (XLIB INTERFACE)))
  2.  
  3. (DEFINE-FOREIGN XLOOKUPKEYSYM*
  4.                 ("XLookupKeysym" (IN REP/C-POINTER) (IN REP/INTEGER))
  5.                 REP/INTEGER)
  6. (DEFINE (XLOOKUPKEYSYM EVENT COL)
  7.         (LET* ((EVENT (CHK-XEVENTP EVENT))
  8.                (COL COL)
  9.                (RETURN-VALUE (XLOOKUPKEYSYM* EVENT COL)))
  10.               RETURN-VALUE))
  11. (DEFINE-FOREIGN XREFRESHKEYBOARDMAPPING*
  12.                 ("XRefreshKeyboardMapping" (IN REP/C-POINTER))
  13.                 IGNORE)
  14. (DEFINE (XREFRESHKEYBOARDMAPPING EVENT)
  15.         (LET* ((EVENT (CHK-XEVENTP EVENT))
  16.                (RETURN-VALUE (BLOCK (XREFRESHKEYBOARDMAPPING* EVENT) '())))
  17.               RETURN-VALUE))
  18. (DEFINE-FOREIGN XLOOKUPSTRING*
  19.                 ("XLookupString" (IN REP/C-POINTER)
  20.                                  (IN REP/C-POINTER)
  21.                                  (IN REP/INTEGER)
  22.                                  (IN REP/EXTEND)
  23.                                  (IN REP/C-POINTER))
  24.                 REP/INTEGER)
  25. (DEFINE (XLOOKUPSTRING EVENT BUFFER BYTES_BUFFER STATUS)
  26.         (LET* ((EVENT (CHK-XEVENTP EVENT))
  27.                (BUFFER (CHK-CHARAP BUFFER))
  28.                (BYTES_BUFFER BYTES_BUFFER)
  29.                (KEYSYM_RETURN (MAKE-BYTEV 4))
  30.                (STATUS (CHK-XCOMPOSESTATUSP STATUS))
  31.                (RETURN-VALUE (XLOOKUPSTRING* EVENT
  32.                                              BUFFER
  33.                                              BYTES_BUFFER
  34.                                              KEYSYM_RETURN
  35.                                              STATUS)))
  36.               (RETURN RETURN-VALUE (MREF-INTEGER KEYSYM_RETURN 0))))
  37. (DEFINE-FOREIGN XREBINDKEYSYM*
  38.                 ("XRebindKeysym" (IN REP/C-POINTER)
  39.                                  (IN REP/INTEGER)
  40.                                  (IN REP/C-POINTER)
  41.                                  (IN REP/INTEGER)
  42.                                  (IN REP/STRING)
  43.                                  (IN REP/INTEGER))
  44.                 IGNORE)
  45. (DEFINE (XREBINDKEYSYM DPY KEYSYM MLIST NM STR NBYTES)
  46.         (LET* ((DPY (CHK-DISPLAYP DPY))
  47.                (KEYSYM KEYSYM)
  48.                (MLIST (CHK-UNSIGNEDAP MLIST))
  49.                (NM NM)
  50.                (STR (IF (STRING? STR)
  51.                         (STRING->ASCIZ! STR)
  52.                         (ERROR "Argument is incorrect type: ~s" STR)))
  53.                (NBYTES NBYTES)
  54.                (RETURN-VALUE (BLOCK (XREBINDKEYSYM* DPY
  55.                                                     KEYSYM
  56.                                                     MLIST
  57.                                                     NM
  58.                                                     STR
  59.                                                     NBYTES)
  60.                                     '())))
  61.               RETURN-VALUE))
  62. (DEFINE-FOREIGN XSTRINGTOKEYSYM*
  63.                 ("XStringToKeysym" (IN REP/STRING))
  64.                 REP/INTEGER)
  65. (DEFINE (XSTRINGTOKEYSYM S)
  66.         (LET* ((S (IF (STRING? S)
  67.                       (STRING->ASCIZ! S)
  68.                       (ERROR "Argument is incorrect type: ~s" S)))
  69.                (RETURN-VALUE (XSTRINGTOKEYSYM* S)))
  70.               RETURN-VALUE))
  71. (DEFINE-FOREIGN XKEYSYMTOSTRING*
  72.                 ("XKeysymToString" (IN REP/INTEGER))
  73.                 REP/POINTER)
  74. (DEFINE (XKEYSYMTOSTRING KS)
  75.         (LET* ((KS KS) (RETURN-VALUE (ASCIZ->STRING (XKEYSYMTOSTRING* KS))))
  76.               RETURN-VALUE))
  77. (DEFINE-FOREIGN XKEYCODETOKEYSYM*
  78.                 ("XKeycodeToKeysym" (IN REP/C-POINTER)
  79.                                     (IN REP/CHAR)
  80.                                     (IN REP/INTEGER))
  81.                 REP/INTEGER)
  82. (DEFINE (XKEYCODETOKEYSYM DPY KC COL)
  83.         (LET* ((DPY (CHK-DISPLAYP DPY))
  84.                (KC KC)
  85.                (COL COL)
  86.                (RETURN-VALUE (XKEYCODETOKEYSYM* DPY KC COL)))
  87.               RETURN-VALUE))
  88. (DEFINE-FOREIGN XKEYSYMTOKEYCODE*
  89.                 ("XKeysymToKeycode" (IN REP/C-POINTER) (IN REP/INTEGER))
  90.                 REP/CHAR)
  91. (DEFINE (XKEYSYMTOKEYCODE DPY KS)
  92.         (LET* ((DPY (CHK-DISPLAYP DPY))
  93.                (KS KS)
  94.                (RETURN-VALUE (XKEYSYMTOKEYCODE* DPY KS)))
  95.               RETURN-VALUE))
  96. (DEFINE-FOREIGN XGETDEFAULT*
  97.                 ("XGetDefault" (IN REP/C-POINTER)
  98.                                (IN REP/STRING)
  99.                                (IN REP/STRING))
  100.                 REP/POINTER)
  101. (DEFINE (XGETDEFAULT DPY PROG NAME)
  102.         (LET* ((DPY (CHK-DISPLAYP DPY))
  103.                (PROG (IF (STRING? PROG)
  104.                          (STRING->ASCIZ! PROG)
  105.                          (ERROR "Argument is incorrect type: ~s" PROG)))
  106.                (NAME (IF (STRING? NAME)
  107.                          (STRING->ASCIZ! NAME)
  108.                          (ERROR "Argument is incorrect type: ~s" NAME)))
  109.                (RETURN-VALUE (ASCIZ->STRING (XGETDEFAULT* DPY PROG NAME))))
  110.               RETURN-VALUE))
  111. (DEFINE-FOREIGN XRESOURCEMANAGERSTRING*
  112.                 ("XResourceManagerString" (IN REP/C-POINTER))
  113.                 REP/POINTER)
  114. (DEFINE (XRESOURCEMANAGERSTRING DPY)
  115.         (LET* ((DPY (CHK-DISPLAYP DPY))
  116.                (RETURN-VALUE (ASCIZ->STRING (XRESOURCEMANAGERSTRING* DPY))))
  117.               RETURN-VALUE))
  118. (DEFINE-FOREIGN XPARSEGEOMETRY*
  119.                 ("XParseGeometry" (IN REP/STRING)
  120.                                   (IN REP/EXTEND)
  121.                                   (IN REP/EXTEND)
  122.                                   (IN REP/EXTEND)
  123.                                   (IN REP/EXTEND))
  124.                 REP/INTEGER)
  125. (DEFINE (XPARSEGEOMETRY STRING)
  126.         (LET* ((STRING (IF (STRING? STRING)
  127.                            (STRING->ASCIZ! STRING)
  128.                            (ERROR "Argument is incorrect type: ~s" STRING)))
  129.                (X (MAKE-BYTEV 4))
  130.                (Y (MAKE-BYTEV 4))
  131.                (WIDTH (MAKE-BYTEV 4))
  132.                (HEIGHT (MAKE-BYTEV 4))
  133.                (RETURN-VALUE (XPARSEGEOMETRY* STRING X Y WIDTH HEIGHT)))
  134.               (RETURN RETURN-VALUE
  135.                       (MREF-INTEGER X 0)
  136.                       (MREF-INTEGER Y 0)
  137.                       (MREF-INTEGER WIDTH 0)
  138.                       (MREF-INTEGER HEIGHT 0))))
  139. (DEFINE-FOREIGN XGEOMETRY*
  140.                 ("XGeometry" (IN REP/C-POINTER)
  141.                              (IN REP/INTEGER)
  142.                              (IN REP/STRING)
  143.                              (IN REP/STRING)
  144.                              (IN REP/INTEGER)
  145.                              (IN REP/INTEGER)
  146.                              (IN REP/INTEGER)
  147.                              (IN REP/INTEGER)
  148.                              (IN REP/INTEGER)
  149.                              (IN REP/EXTEND)
  150.                              (IN REP/EXTEND)
  151.                              (IN REP/EXTEND)
  152.                              (IN REP/EXTEND))
  153.                 REP/INTEGER)
  154. (DEFINE (XGEOMETRY DPY SCREEN POS DEF BWIDTH FWIDTH FHEIGHT XADD YADD)
  155.         (LET* ((DPY (CHK-DISPLAYP DPY))
  156.                (SCREEN SCREEN)
  157.                (POS (IF (STRING? POS)
  158.                         (STRING->ASCIZ! POS)
  159.                         (ERROR "Argument is incorrect type: ~s" POS)))
  160.                (DEF (IF (STRING? DEF)
  161.                         (STRING->ASCIZ! DEF)
  162.                         (ERROR "Argument is incorrect type: ~s" DEF)))
  163.                (BWIDTH BWIDTH)
  164.                (FWIDTH FWIDTH)
  165.                (FHEIGHT FHEIGHT)
  166.                (XADD XADD)
  167.                (YADD YADD)
  168.                (X (MAKE-BYTEV 4))
  169.                (Y (MAKE-BYTEV 4))
  170.                (WIDTH (MAKE-BYTEV 4))
  171.                (HEIGHT (MAKE-BYTEV 4))
  172.                (RETURN-VALUE (XGEOMETRY* DPY
  173.                                          SCREEN
  174.                                          POS
  175.                                          DEF
  176.                                          BWIDTH
  177.                                          FWIDTH
  178.                                          FHEIGHT
  179.                                          XADD
  180.                                          YADD
  181.                                          X
  182.                                          Y
  183.                                          WIDTH
  184.                                          HEIGHT)))
  185.               (RETURN RETURN-VALUE
  186.                       (MREF-INTEGER X 0)
  187.                       (MREF-INTEGER Y 0)
  188.                       (MREF-INTEGER WIDTH 0)
  189.                       (MREF-INTEGER HEIGHT 0))))
  190. (DEFINE-FOREIGN XPARSECOLOR*
  191.                 ("XParseColor" (IN REP/C-POINTER)
  192.                                (IN REP/INTEGER)
  193.                                (IN REP/STRING)
  194.                                (IN REP/EXTEND))
  195.                 REP/INTEGER)
  196. (DEFINE (XPARSECOLOR DPY CMAP SPEC)
  197.         (LET* ((DPY (CHK-DISPLAYP DPY))
  198.                (CMAP CMAP)
  199.                (SPEC (IF (STRING? SPEC)
  200.                          (STRING->ASCIZ! SPEC)
  201.                          (ERROR "Argument is incorrect type: ~s" SPEC)))
  202.                (DEF (MAKE-BYTEV 12))
  203.                (RETURN-VALUE (XPARSECOLOR* DPY CMAP SPEC DEF)))
  204.               (RETURN RETURN-VALUE (CONS 'XCOLORP DEF))))
  205. (DEFINE-FOREIGN XPOLYGONREGION*
  206.                 ("XPolygonRegion" (IN REP/C-POINTER)
  207.                                   (IN REP/INTEGER)
  208.                                   (IN REP/INTEGER))
  209.                 REP/POINTER)
  210. (DEFINE (XPOLYGONREGION PTS COUNT RULE)
  211.         (LET* ((PTS (CHK-XPOINTAP PTS))
  212.                (COUNT COUNT)
  213.                (RULE RULE)
  214.                (RETURN-VALUE (CONS 'REGION
  215.                                    (XPOLYGONREGION* PTS COUNT RULE))))
  216.               RETURN-VALUE))
  217. (DEFINE-FOREIGN XCLIPBOX*
  218.                 ("XClipBox" (IN REP/C-POINTER) (IN REP/EXTEND))
  219.                 IGNORE)
  220. (DEFINE (XCLIPBOX R)
  221.         (LET* ((R (CHK-REGION R))
  222.                (RECT (MAKE-BYTEV 8))
  223.                (RETURN-VALUE (BLOCK (XCLIPBOX* R RECT) '())))
  224.               (CONS 'XRECTANGLEP RECT)))
  225. (DEFINE-FOREIGN XCREATEREGION* ("XCreateRegion") REP/POINTER)
  226. (DEFINE (XCREATEREGION)
  227.         (LET* ((RETURN-VALUE (CONS 'REGION (XCREATEREGION*))))
  228.               RETURN-VALUE))
  229. (DEFINE-FOREIGN XSETREGION*
  230.                 ("XSetRegion" (IN REP/C-POINTER)
  231.                               (IN REP/C-POINTER)
  232.                               (IN REP/C-POINTER))
  233.                 IGNORE)
  234. (DEFINE (XSETREGION DPY GC R)
  235.         (LET* ((DPY (CHK-DISPLAYP DPY))
  236.                (GC (CHK-GC GC))
  237.                (R (CHK-REGION R))
  238.                (RETURN-VALUE (BLOCK (XSETREGION* DPY GC R) '())))
  239.               RETURN-VALUE))
  240. (DEFINE-FOREIGN XDESTROYREGION* ("XDestroyRegion" (IN REP/C-POINTER)) IGNORE)
  241. (DEFINE (XDESTROYREGION R)
  242.         (LET* ((R (CHK-REGION R))
  243.                (RETURN-VALUE (BLOCK (XDESTROYREGION* R) '())))
  244.               RETURN-VALUE))
  245. (DEFINE-FOREIGN XOFFSETREGION*
  246.                 ("XOffsetRegion" (IN REP/C-POINTER)
  247.                                  (IN REP/INTEGER)
  248.                                  (IN REP/INTEGER))
  249.                 IGNORE)
  250. (DEFINE (XOFFSETREGION PREGION X Y)
  251.         (LET* ((PREGION (CHK-REGION PREGION))
  252.                (X X)
  253.                (Y Y)
  254.                (RETURN-VALUE (BLOCK (XOFFSETREGION* PREGION X Y) '())))
  255.               RETURN-VALUE))
  256. (DEFINE-FOREIGN XSHRINKREGION*
  257.                 ("XShrinkRegion" (IN REP/C-POINTER)
  258.                                  (IN REP/INTEGER)
  259.                                  (IN REP/INTEGER))
  260.                 IGNORE)
  261. (DEFINE (XSHRINKREGION R DX DY)
  262.         (LET* ((R (CHK-REGION R))
  263.                (DX DX)
  264.                (DY DY)
  265.                (RETURN-VALUE (BLOCK (XSHRINKREGION* R DX DY) '())))
  266.               RETURN-VALUE))
  267. (DEFINE-FOREIGN XINTERSECTREGION*
  268.                 ("XIntersectRegion" (IN REP/C-POINTER)
  269.                                     (IN REP/C-POINTER)
  270.                                     (IN REP/EXTEND))
  271.                 IGNORE)
  272. (DEFINE (XINTERSECTREGION REG1 REG2)
  273.         (LET* ((REG1 (CHK-REGION REG1))
  274.                (REG2 (CHK-REGION REG2))
  275.                (NEWREG (MAKE-BYTEV 4))
  276.                (RETURN-VALUE (BLOCK (XINTERSECTREGION* REG1 REG2 NEWREG)
  277.                                     '())))
  278.               (CONS 'REGION (MREF-POINTER NEWREG 0))))
  279. (DEFINE-FOREIGN XUNIONREGION*
  280.                 ("XUnionRegion" (IN REP/C-POINTER)
  281.                                 (IN REP/C-POINTER)
  282.                                 (IN REP/EXTEND))
  283.                 IGNORE)
  284. (DEFINE (XUNIONREGION REG1 REG2)
  285.         (LET* ((REG1 (CHK-REGION REG1))
  286.                (REG2 (CHK-REGION REG2))
  287.                (NEWREG (MAKE-BYTEV 4))
  288.                (RETURN-VALUE (BLOCK (XUNIONREGION* REG1 REG2 NEWREG) '())))
  289.               (CONS 'REGION (MREF-POINTER NEWREG 0))))
  290. (DEFINE-FOREIGN XUNIONRECTWITHREGION*
  291.                 ("XUnionRectWithRegion" (IN REP/C-POINTER)
  292.                                         (IN REP/C-POINTER)
  293.                                         (IN REP/EXTEND))
  294.                 IGNORE)
  295. (DEFINE (XUNIONRECTWITHREGION RECT SOURCE)
  296.         (LET* ((RECT (CHK-XRECTANGLEP RECT))
  297.                (SOURCE (CHK-REGION SOURCE))
  298.                (DEST (MAKE-BYTEV 4))
  299.                (RETURN-VALUE (BLOCK (XUNIONRECTWITHREGION* RECT SOURCE DEST)
  300.                                     '())))
  301.               (CONS 'REGION (MREF-POINTER DEST 0))))
  302. (DEFINE-FOREIGN XSUBTRACTREGION*
  303.                 ("XSubtractRegion" (IN REP/C-POINTER)
  304.                                    (IN REP/C-POINTER)
  305.                                    (IN REP/EXTEND))
  306.                 IGNORE)
  307. (DEFINE (XSUBTRACTREGION REGM REGS)
  308.         (LET* ((REGM (CHK-REGION REGM))
  309.                (REGS (CHK-REGION REGS))
  310.                (REGD (MAKE-BYTEV 4))
  311.                (RETURN-VALUE (BLOCK (XSUBTRACTREGION* REGM REGS REGD)
  312.                                     '())))
  313.               (CONS 'REGION (MREF-POINTER REGD 0))))
  314. (DEFINE-FOREIGN XXORREGION*
  315.                 ("XXorRegion" (IN REP/C-POINTER)
  316.                               (IN REP/C-POINTER)
  317.                               (IN REP/EXTEND))
  318.                 IGNORE)
  319. (DEFINE (XXORREGION SRA SRB)
  320.         (LET* ((SRA (CHK-REGION SRA))
  321.                (SRB (CHK-REGION SRB))
  322.                (DR (MAKE-BYTEV 4))
  323.                (RETURN-VALUE (BLOCK (XXORREGION* SRA SRB DR) '())))
  324.               (CONS 'REGION (MREF-POINTER DR 0))))
  325. (DEFINE-FOREIGN XEMPTYREGION* ("XEmptyRegion" (IN REP/C-POINTER)) REP/INTEGER)
  326. (DEFINE (XEMPTYREGION R)
  327.         (LET* ((R (CHK-REGION R)) (RETURN-VALUE (XEMPTYREGION* R)))
  328.               RETURN-VALUE))
  329. (DEFINE-FOREIGN XEQUALREGION*
  330.                 ("XEqualRegion" (IN REP/C-POINTER) (IN REP/C-POINTER))
  331.                 REP/INTEGER)
  332. (DEFINE (XEQUALREGION R1 R2)
  333.         (LET* ((R1 (CHK-REGION R1))
  334.                (R2 (CHK-REGION R2))
  335.                (RETURN-VALUE (XEQUALREGION* R1 R2)))
  336.               RETURN-VALUE))
  337. (DEFINE-FOREIGN XPOINTINREGION*
  338.                 ("XPointInRegion" (IN REP/C-POINTER)
  339.                                   (IN REP/INTEGER)
  340.                                   (IN REP/INTEGER))
  341.                 REP/INTEGER)
  342. (DEFINE (XPOINTINREGION PREGION X Y)
  343.         (LET* ((PREGION (CHK-REGION PREGION))
  344.                (X X)
  345.                (Y Y)
  346.                (RETURN-VALUE (XPOINTINREGION* PREGION X Y)))
  347.               RETURN-VALUE))
  348. (DEFINE-FOREIGN XRECTINREGION*
  349.                 ("XRectInRegion" (IN REP/C-POINTER)
  350.                                  (IN REP/INTEGER)
  351.                                  (IN REP/INTEGER)
  352.                                  (IN REP/INTEGER)
  353.                                  (IN REP/INTEGER))
  354.                 REP/INTEGER)
  355. (DEFINE (XRECTINREGION REGION RX RY RWIDTH RHEIGHT)
  356.         (LET* ((REGION (CHK-REGION REGION))
  357.                (RX RX)
  358.                (RY RY)
  359.                (RWIDTH RWIDTH)
  360.                (RHEIGHT RHEIGHT)
  361.                (RETURN-VALUE (XRECTINREGION* REGION RX RY RWIDTH RHEIGHT)))
  362.               RETURN-VALUE))
  363. (DEFINE-FOREIGN XSTOREBYTES*
  364.                 ("XStoreBytes" (IN REP/C-POINTER)
  365.                                (IN REP/C-POINTER)
  366.                                (IN REP/INTEGER))
  367.                 IGNORE)
  368. (DEFINE (XSTOREBYTES DPY BYTES NBYTES)
  369.         (LET* ((DPY (CHK-DISPLAYP DPY))
  370.                (BYTES (CHK-CHARAP BYTES))
  371.                (NBYTES NBYTES)
  372.                (RETURN-VALUE (BLOCK (XSTOREBYTES* DPY BYTES NBYTES) '())))
  373.               RETURN-VALUE))
  374. (DEFINE-FOREIGN XSTOREBUFFER*
  375.                 ("XStoreBuffer" (IN REP/C-POINTER)
  376.                                 (IN REP/C-POINTER)
  377.                                 (IN REP/INTEGER)
  378.                                 (IN REP/INTEGER))
  379.                 IGNORE)
  380. (DEFINE (XSTOREBUFFER DPY BYTES NBYTES BUFFER)
  381.         (LET* ((DPY (CHK-DISPLAYP DPY))
  382.                (BYTES (CHK-CHARAP BYTES))
  383.                (NBYTES NBYTES)
  384.                (BUFFER BUFFER)
  385.                (RETURN-VALUE (BLOCK (XSTOREBUFFER* DPY BYTES NBYTES BUFFER)
  386.                                     '())))
  387.               RETURN-VALUE))
  388. (DEFINE-FOREIGN XFETCHBYTES*
  389.                 ("XFetchBytes" (IN REP/C-POINTER) (IN REP/EXTEND))
  390.                 REP/POINTER)
  391. (DEFINE (XFETCHBYTES DPY)
  392.         (LET* ((DPY (CHK-DISPLAYP DPY))
  393.                (NBYTES (MAKE-BYTEV 4))
  394.                (RETURN-VALUE (CONS 'CHARAP (XFETCHBYTES* DPY NBYTES))))
  395.               (RETURN RETURN-VALUE (MREF-INTEGER NBYTES 0))))
  396. (DEFINE-FOREIGN XFETCHBUFFER*
  397.                 ("XFetchBuffer" (IN REP/C-POINTER)
  398.                                 (IN REP/EXTEND)
  399.                                 (IN REP/INTEGER))
  400.                 REP/POINTER)
  401. (DEFINE (XFETCHBUFFER DPY BUFFER)
  402.         (LET* ((DPY (CHK-DISPLAYP DPY))
  403.                (NBYTES (MAKE-BYTEV 4))
  404.                (BUFFER BUFFER)
  405.                (RETURN-VALUE (CONS 'CHARAP
  406.                                    (XFETCHBUFFER* DPY NBYTES BUFFER))))
  407.               (RETURN RETURN-VALUE (MREF-INTEGER NBYTES 0))))
  408. (DEFINE-FOREIGN XROTATEBUFFERS*
  409.                 ("XRotateBuffers" (IN REP/C-POINTER) (IN REP/INTEGER))
  410.                 IGNORE)
  411. (DEFINE (XROTATEBUFFERS DPY ROTATE)
  412.         (LET* ((DPY (CHK-DISPLAYP DPY))
  413.                (ROTATE ROTATE)
  414.                (RETURN-VALUE (BLOCK (XROTATEBUFFERS* DPY ROTATE) '())))
  415.               RETURN-VALUE))
  416. (DEFINE-FOREIGN XGETVISUALINFO*
  417.                 ("XGetVisualInfo" (IN REP/C-POINTER)
  418.                                   (IN REP/INTEGER)
  419.                                   (IN REP/C-POINTER)
  420.                                   (IN REP/EXTEND))
  421.                 REP/POINTER)
  422. (DEFINE (XGETVISUALINFO DPY VISUAL_INFO_MASK VISUAL_INFO_TEMPLATE)
  423.         (LET* ((DPY (CHK-DISPLAYP DPY))
  424.                (VISUAL_INFO_MASK VISUAL_INFO_MASK)
  425.                (VISUAL_INFO_TEMPLATE (CHK-XVISUALINFOP VISUAL_INFO_TEMPLATE))
  426.                (NITEMS (MAKE-BYTEV 4))
  427.                (RETURN-VALUE (CONS 'XVISUALINFOP
  428.                                    (XGETVISUALINFO* DPY
  429.                                                     VISUAL_INFO_MASK
  430.                                                     VISUAL_INFO_TEMPLATE
  431.                                                     NITEMS))))
  432.               (RETURN RETURN-VALUE (MREF-INTEGER NITEMS 0))))
  433. (DEFINE-FOREIGN XMATCHVISUALINFO*
  434.                 ("XMatchVisualInfo" (IN REP/C-POINTER)
  435.                                     (IN REP/INTEGER)
  436.                                     (IN REP/INTEGER)
  437.                                     (IN REP/INTEGER)
  438.                                     (IN REP/EXTEND))
  439.                 REP/INTEGER)
  440. (DEFINE (XMATCHVISUALINFO DPY SCREEN DEPTH CLASS)
  441.         (LET* ((DPY (CHK-DISPLAYP DPY))
  442.                (SCREEN SCREEN)
  443.                (DEPTH DEPTH)
  444.                (CLASS CLASS)
  445.                (VISUAL_INFO (MAKE-BYTEV 40))
  446.                (RETURN-VALUE (XMATCHVISUALINFO* DPY
  447.                                                 SCREEN
  448.                                                 DEPTH
  449.                                                 CLASS
  450.                                                 VISUAL_INFO)))
  451.               (RETURN RETURN-VALUE (CONS 'XVISUALINFOP VISUAL_INFO))))
  452. (DEFINE-FOREIGN XCREATEIMAGE*
  453.                 ("XCreateImage" (IN REP/C-POINTER)
  454.                                 (IN REP/C-POINTER)
  455.                                 (IN REP/INTEGER)
  456.                                 (IN REP/INTEGER)
  457.                                 (IN REP/INTEGER)
  458.                                 (IN REP/C-POINTER)
  459.                                 (IN REP/INTEGER)
  460.                                 (IN REP/INTEGER)
  461.                                 (IN REP/INTEGER)
  462.                                 (IN REP/INTEGER))
  463.                 REP/POINTER)
  464. (DEFINE (XCREATEIMAGE DPY
  465.                       VISUAL
  466.                       DEPTH
  467.                       FORMAT
  468.                       OFFSET
  469.                       DATA
  470.                       WIDTH
  471.                       HEIGHT
  472.                       XPAD
  473.                       IMAGE_BYTES_PER_LINE)
  474.         (LET* ((DPY (CHK-DISPLAYP DPY))
  475.                (VISUAL (CHK-VISUALP VISUAL))
  476.                (DEPTH DEPTH)
  477.                (FORMAT FORMAT)
  478.                (OFFSET OFFSET)
  479.                (DATA (CHK-CHARP DATA))
  480.                (WIDTH WIDTH)
  481.                (HEIGHT HEIGHT)
  482.                (XPAD XPAD)
  483.                (IMAGE_BYTES_PER_LINE IMAGE_BYTES_PER_LINE)
  484.                (RETURN-VALUE (CONS 'XIMAGEP
  485.                                    (XCREATEIMAGE* DPY
  486.                                                   VISUAL
  487.                                                   DEPTH
  488.                                                   FORMAT
  489.                                                   OFFSET
  490.                                                   DATA
  491.                                                   WIDTH
  492.                                                   HEIGHT
  493.                                                   XPAD
  494.                                                   IMAGE_BYTES_PER_LINE))))
  495.               RETURN-VALUE))
  496. (DEFINE-FOREIGN XGETPIXEL*
  497.                 ("XGetPixel" (IN REP/C-POINTER)
  498.                              (IN REP/INTEGER)
  499.                              (IN REP/INTEGER))
  500.                 REP/INTEGER)
  501. (DEFINE (XGETPIXEL XIMAGE X Y)
  502.         (LET* ((XIMAGE (CHK-XIMAGEP XIMAGE))
  503.                (X X)
  504.                (Y Y)
  505.                (RETURN-VALUE (XGETPIXEL* XIMAGE X Y)))
  506.               RETURN-VALUE))
  507. (DEFINE-FOREIGN XPUTPIXEL*
  508.                 ("XPutPixel" (IN REP/C-POINTER)
  509.                              (IN REP/INTEGER)
  510.                              (IN REP/INTEGER)
  511.                              (IN REP/INTEGER))
  512.                 REP/INTEGER)
  513. (DEFINE (XPUTPIXEL XIMAGE X Y PIXEL)
  514.         (LET* ((XIMAGE (CHK-XIMAGEP XIMAGE))
  515.                (X X)
  516.                (Y Y)
  517.                (PIXEL PIXEL)
  518.                (RETURN-VALUE (XPUTPIXEL* XIMAGE X Y PIXEL)))
  519.               RETURN-VALUE))
  520. (DEFINE-FOREIGN XSUBIMAGE*
  521.                 ("XSubImage" (IN REP/C-POINTER)
  522.                              (IN REP/INTEGER)
  523.                              (IN REP/INTEGER)
  524.                              (IN REP/INTEGER)
  525.                              (IN REP/INTEGER))
  526.                 REP/POINTER)
  527. (DEFINE (XSUBIMAGE XIMAGE X Y WIDTH HEIGHT)
  528.         (LET* ((XIMAGE (CHK-XIMAGEP XIMAGE))
  529.                (X X)
  530.                (Y Y)
  531.                (WIDTH WIDTH)
  532.                (HEIGHT HEIGHT)
  533.                (RETURN-VALUE (CONS 'XIMAGEP
  534.                                    (XSUBIMAGE* XIMAGE X Y WIDTH HEIGHT))))
  535.               RETURN-VALUE))
  536. (DEFINE-FOREIGN XADDPIXEL*
  537.                 ("XAddPixel" (IN REP/C-POINTER) (IN REP/INTEGER))
  538.                 IGNORE)
  539. (DEFINE (XADDPIXEL XIMAGE VALUE)
  540.         (LET* ((XIMAGE (CHK-XIMAGEP XIMAGE))
  541.                (VALUE VALUE)
  542.                (RETURN-VALUE (BLOCK (XADDPIXEL* XIMAGE VALUE) '())))
  543.               RETURN-VALUE))
  544. (DEFINE-FOREIGN XDESTROYIMAGE* ("XDestroyImage" (IN REP/C-POINTER)) REP/INTEGER)
  545. (DEFINE (XDESTROYIMAGE XIMAGE)
  546.         (LET* ((XIMAGE (CHK-XIMAGEP XIMAGE))
  547.                (RETURN-VALUE (XDESTROYIMAGE* XIMAGE)))
  548.               RETURN-VALUE))
  549. (DEFINE-FOREIGN XREADBITMAPFILE*
  550.                 ("XReadBitmapFile" (IN REP/C-POINTER)
  551.                                    (IN REP/INTEGER)
  552.                                    (IN REP/STRING)
  553.                                    (IN REP/EXTEND)
  554.                                    (IN REP/EXTEND)
  555.                                    (IN REP/EXTEND)
  556.                                    (IN REP/EXTEND)
  557.                                    (IN REP/EXTEND))
  558.                 REP/INTEGER)
  559. (DEFINE (XREADBITMAPFILE DISPLAY D FILENAME)
  560.         (LET* ((DISPLAY (CHK-DISPLAYP DISPLAY))
  561.                (D D)
  562.                (FILENAME (IF (STRING? FILENAME)
  563.                              (STRING->ASCIZ! FILENAME)
  564.                              (ERROR "Argument is incorrect type: ~s" FILENAME)))
  565.                (WIDTH (MAKE-BYTEV 4))
  566.                (HEIGHT (MAKE-BYTEV 4))
  567.                (PIXMAP (MAKE-BYTEV 4))
  568.                (X_HOT (MAKE-BYTEV 4))
  569.                (Y_HOT (MAKE-BYTEV 4))
  570.                (RETURN-VALUE (XREADBITMAPFILE* DISPLAY
  571.                                                D
  572.                                                FILENAME
  573.                                                WIDTH
  574.                                                HEIGHT
  575.                                                PIXMAP
  576.                                                X_HOT
  577.                                                Y_HOT)))
  578.               (RETURN RETURN-VALUE
  579.                       (MREF-INTEGER WIDTH 0)
  580.                       (MREF-INTEGER HEIGHT 0)
  581.                       (MREF-INTEGER PIXMAP 0)
  582.                       (MREF-INTEGER X_HOT 0)
  583.                       (MREF-INTEGER Y_HOT 0))))
  584. (DEFINE-FOREIGN XWRITEBITMAPFILE*
  585.                 ("XWriteBitmapFile" (IN REP/C-POINTER)
  586.                                     (IN REP/STRING)
  587.                                     (IN REP/INTEGER)
  588.                                     (IN REP/INTEGER)
  589.                                     (IN REP/INTEGER)
  590.                                     (IN REP/INTEGER)
  591.                                     (IN REP/INTEGER))
  592.                 REP/INTEGER)
  593. (DEFINE (XWRITEBITMAPFILE DISPLAY FILENAME BITMAP WIDTH HEIGHT X_HOT Y_HOT)
  594.         (LET* ((DISPLAY (CHK-DISPLAYP DISPLAY))
  595.                (FILENAME (IF (STRING? FILENAME)
  596.                              (STRING->ASCIZ! FILENAME)
  597.                              (ERROR "Argument is incorrect type: ~s" FILENAME)))
  598.                (BITMAP BITMAP)
  599.                (WIDTH WIDTH)
  600.                (HEIGHT HEIGHT)
  601.                (X_HOT X_HOT)
  602.                (Y_HOT Y_HOT)
  603.                (RETURN-VALUE (XWRITEBITMAPFILE* DISPLAY
  604.                                                 FILENAME
  605.                                                 BITMAP
  606.                                                 WIDTH
  607.                                                 HEIGHT
  608.                                                 X_HOT
  609.                                                 Y_HOT)))
  610.               RETURN-VALUE))
  611. (DEFINE-FOREIGN XCREATEPIXMAPFROMBITMAPDATA*
  612.                 ("XCreatePixmapFromBitmapData" (IN REP/C-POINTER)
  613.                                                (IN REP/INTEGER)
  614.                                                (IN REP/C-POINTER)
  615.                                                (IN REP/INTEGER)
  616.                                                (IN REP/INTEGER)
  617.                                                (IN REP/INTEGER)
  618.                                                (IN REP/INTEGER)
  619.                                                (IN REP/INTEGER))
  620.                 REP/INTEGER)
  621. (DEFINE (XCREATEPIXMAPFROMBITMAPDATA DISPLAY D DATA WIDTH HEIGHT FG BG DEPTH)
  622.         (LET* ((DISPLAY (CHK-DISPLAYP DISPLAY))
  623.                (D D)
  624.                (DATA (CHK-CHARP DATA))
  625.                (WIDTH WIDTH)
  626.                (HEIGHT HEIGHT)
  627.                (FG FG)
  628.                (BG BG)
  629.                (DEPTH DEPTH)
  630.                (RETURN-VALUE (XCREATEPIXMAPFROMBITMAPDATA* DISPLAY
  631.                                                            D
  632.                                                            DATA
  633.                                                            WIDTH
  634.                                                            HEIGHT
  635.                                                            FG
  636.                                                            BG
  637.                                                            DEPTH)))
  638.               RETURN-VALUE))
  639. (DEFINE-FOREIGN XCREATEBITMAPFROMDATA*
  640.                 ("XCreateBitmapFromData" (IN REP/C-POINTER)
  641.                                          (IN REP/INTEGER)
  642.                                          (IN REP/C-POINTER)
  643.                                          (IN REP/INTEGER)
  644.                                          (IN REP/INTEGER))
  645.                 REP/INTEGER)
  646. (DEFINE (XCREATEBITMAPFROMDATA DISPLAY D DATA WIDTH HEIGHT)
  647.         (LET* ((DISPLAY (CHK-DISPLAYP DISPLAY))
  648.                (D D)
  649.                (DATA (CHK-CHARP DATA))
  650.                (WIDTH WIDTH)
  651.                (HEIGHT HEIGHT)
  652.                (RETURN-VALUE (XCREATEBITMAPFROMDATA* DISPLAY
  653.                                                      D
  654.                                                      DATA
  655.                                                      WIDTH
  656.                                                      HEIGHT)))
  657.               RETURN-VALUE))
  658. (DEFINE-FOREIGN XRMINITIALIZE* ("XrmInitialize") IGNORE)
  659. (DEFINE (XRMINITIALIZE)
  660.         (LET* ((RETURN-VALUE (BLOCK (XRMINITIALIZE*) '()))) RETURN-VALUE))
  661. (DEFINE-FOREIGN XRMUNIQUEQUARK* ("XrmUniqueQuark") REP/INTEGER)
  662. (DEFINE (XRMUNIQUEQUARK) (LET* ((RETURN-VALUE (XRMUNIQUEQUARK*))) RETURN-VALUE))
  663. (DEFINE-FOREIGN XPERMALLOC* ("Xpermalloc" (IN REP/INTEGER)) REP/POINTER)
  664. (DEFINE (XPERMALLOC LENGTH)
  665.         (LET* ((LENGTH LENGTH)
  666.                (RETURN-VALUE (CONS 'CHARP (XPERMALLOC* LENGTH))))
  667.               RETURN-VALUE))
  668. (DEFINE-FOREIGN XRMSTRINGTOQUARK*
  669.                 ("XrmStringToQuark" (IN REP/C-POINTER))
  670.                 REP/INTEGER)
  671. (DEFINE (XRMSTRINGTOQUARK NAME)
  672.         (LET* ((NAME (CHK-CHARAP NAME)) (RETURN-VALUE (XRMSTRINGTOQUARK* NAME)))
  673.               RETURN-VALUE))
  674. (DEFINE-FOREIGN XRMQUARKTOSTRING*
  675.                 ("XrmQuarkToString" (IN REP/INTEGER))
  676.                 REP/POINTER)
  677. (DEFINE (XRMQUARKTOSTRING QUARK)
  678.         (LET* ((QUARK QUARK)
  679.                (RETURN-VALUE (CONS 'CHARAP (XRMQUARKTOSTRING* QUARK))))
  680.               RETURN-VALUE))
  681. (DEFINE-FOREIGN XRMSTRINGTOQUARKLIST*
  682.                 ("XrmStringToQuarkList" (IN REP/STRING) (IN REP/EXTEND))
  683.                 IGNORE)
  684. (DEFINE (XRMSTRINGTOQUARKLIST NAME)
  685.         (LET* ((NAME (IF (STRING? NAME)
  686.                          (STRING->ASCIZ! NAME)
  687.                          (ERROR "Argument is incorrect type: ~s" NAME)))
  688.                (QUARKS (MAKE-BYTEV 4))
  689.                (RETURN-VALUE (BLOCK (XRMSTRINGTOQUARKLIST* NAME QUARKS)
  690.                                     '())))
  691.               (CONS 'INTAP (MREF-POINTER QUARKS 0))))
  692. (DEFINE-FOREIGN XRMSTRINGTOBINDINGQUARKLIST*
  693.                 ("XrmStringToBindingQuarkList" (IN REP/STRING)
  694.                                                (IN REP/EXTEND)
  695.                                                (IN REP/EXTEND))
  696.                 IGNORE)
  697. (DEFINE (XRMSTRINGTOBINDINGQUARKLIST NAME)
  698.         (LET* ((NAME (IF (STRING? NAME)
  699.                          (STRING->ASCIZ! NAME)
  700.                          (ERROR "Argument is incorrect type: ~s" NAME)))
  701.                (BINDINGS (MAKE-BYTEV 4))
  702.                (QUARKS (MAKE-BYTEV 4))
  703.                (RETURN-VALUE (BLOCK (XRMSTRINGTOBINDINGQUARKLIST* NAME
  704.                                                                  
  705. BINDINGS
  706.                                                                  
  707. QUARKS)
  708.                                     '())))
  709.               (RETURN (CONS 'INTAP (MREF-POINTER BINDINGS 0))
  710.                       (CONS 'INTAP (MREF-POINTER QUARKS 0)))))
  711. (DEFINE-FOREIGN XRMPUTRESOURCE*
  712.                 ("XrmPutResource" (IN REP/C-POINTER)
  713.                                   (IN REP/STRING)
  714.                                   (IN REP/STRING)
  715.                                   (IN REP/C-POINTER))
  716.                 IGNORE)
  717. (DEFINE (XRMPUTRESOURCE PDB SPECIFIER TYPE VALUE)
  718.         (LET* ((PDB (CHK-XRMDATABASEP PDB))
  719.                (SPECIFIER (IF (STRING? SPECIFIER)
  720.                               (STRING->ASCIZ! SPECIFIER)
  721.                               (ERROR "Argument is incorrect type: ~s" SPECIFIER)))
  722.                (TYPE (IF (STRING? TYPE)
  723.                          (STRING->ASCIZ! TYPE)
  724.                          (ERROR "Argument is incorrect type: ~s" TYPE)))
  725.                (VALUE (CHK-XRMVALUEPTR VALUE))
  726.                (RETURN-VALUE (BLOCK (XRMPUTRESOURCE* PDB SPECIFIER TYPE VALUE)
  727.                                     '())))
  728.               RETURN-VALUE))
  729. (DEFINE-FOREIGN XRMQPUTRESOURCE*
  730.                 ("XrmQPutResource" (IN REP/C-POINTER)
  731.                                    (IN REP/C-POINTER)
  732.                                    (IN REP/C-POINTER)
  733.                                    (IN REP/INTEGER)
  734.                                    (IN REP/C-POINTER))
  735.                 IGNORE)
  736. (DEFINE (XRMQPUTRESOURCE PDB BINDINGS QUARKS TYPE VALUE)
  737.         (LET* ((PDB (CHK-XRMDATABASEP PDB))
  738.                (BINDINGS (CHK-INTAP BINDINGS))
  739.                (QUARKS (CHK-INTAP QUARKS))
  740.                (TYPE TYPE)
  741.                (VALUE (CHK-XRMVALUEPTR VALUE))
  742.                (RETURN-VALUE (BLOCK (XRMQPUTRESOURCE* PDB
  743.                                                       BINDINGS
  744.                                                       QUARKS
  745.                                                       TYPE
  746.                                                       VALUE)
  747.                                     '())))
  748.               RETURN-VALUE))
  749. (DEFINE-FOREIGN XRMPUTSTRINGRESOURCE*
  750.                 ("XrmPutStringResource" (IN REP/C-POINTER)
  751.                                         (IN REP/STRING)
  752.                                         (IN REP/STRING))
  753.                 IGNORE)
  754. (DEFINE (XRMPUTSTRINGRESOURCE PDB SPECIFIER STR)
  755.         (LET* ((PDB (CHK-XRMDATABASEP PDB))
  756.                (SPECIFIER (IF (STRING? SPECIFIER)
  757.                               (STRING->ASCIZ! SPECIFIER)
  758.                               (ERROR "Argument is incorrect type: ~s" SPECIFIER)))
  759.                (STR (IF (STRING? STR)
  760.                         (STRING->ASCIZ! STR)
  761.                         (ERROR "Argument is incorrect type: ~s" STR)))
  762.                (RETURN-VALUE (BLOCK (XRMPUTSTRINGRESOURCE* PDB SPECIFIER STR)
  763.                                     '())))
  764.               RETURN-VALUE))
  765. (DEFINE-FOREIGN XRMQPUTSTRINGRESOURCE*
  766.                 ("XrmQPutStringResource" (IN REP/C-POINTER)
  767.                                          (IN REP/C-POINTER)
  768.                                          (IN REP/C-POINTER)
  769.                                          (IN REP/STRING))
  770.                 IGNORE)
  771. (DEFINE (XRMQPUTSTRINGRESOURCE PDB BINDINGS QUARKS STR)
  772.         (LET* ((PDB (CHK-XRMDATABASEP PDB))
  773.                (BINDINGS (CHK-INTAP BINDINGS))
  774.                (QUARKS (CHK-INTAP QUARKS))
  775.                (STR (IF (STRING? STR)
  776.                         (STRING->ASCIZ! STR)
  777.                         (ERROR "Argument is incorrect type: ~s" STR)))
  778.                (RETURN-VALUE (BLOCK (XRMQPUTSTRINGRESOURCE* PDB
  779.                                                             BINDINGS
  780.                                                             QUARKS
  781.                                                             STR)
  782.                                     '())))
  783.               RETURN-VALUE))
  784. (DEFINE-FOREIGN XRMPUTLINERESOURCE*
  785.                 ("XrmPutLineResource" (IN REP/C-POINTER) (IN REP/STRING))
  786.                 IGNORE)
  787. (DEFINE (XRMPUTLINERESOURCE PDB LINE)
  788.         (LET* ((PDB (CHK-XRMDATABASEP PDB))
  789.                (LINE (IF (STRING? LINE)
  790.                          (STRING->ASCIZ! LINE)
  791.                          (ERROR "Argument is incorrect type: ~s" LINE)))
  792.                (RETURN-VALUE (BLOCK (XRMPUTLINERESOURCE* PDB LINE) '())))
  793.               RETURN-VALUE))
  794. (DEFINE-FOREIGN XRMGETRESOURCE*
  795.                 ("XrmGetResource" (IN REP/C-POINTER)
  796.                                   (IN REP/C-POINTER)
  797.                                   (IN REP/C-POINTER)
  798.                                   (IN REP/EXTEND)
  799.                                   (IN REP/EXTEND))
  800.                 REP/INTEGER)
  801. (DEFINE (XRMGETRESOURCE DB NAME_STR CLASS_STR)
  802.         (LET* ((DB (CHK-XRMHASHBUCKET DB))
  803.                (NAME_STR (CHK-CHARAP NAME_STR))
  804.                (CLASS_STR (CHK-CHARAP CLASS_STR))
  805.                (PTYPE_STR (MAKE-BYTEV 4))
  806.                (PVALUE (MAKE-BYTEV 4))
  807.                (RETURN-VALUE (XRMGETRESOURCE* DB
  808.                                               NAME_STR
  809.                                               CLASS_STR
  810.                                               PTYPE_STR
  811.                                               PVALUE)))
  812.               (RETURN RETURN-VALUE
  813.                       (CONS 'CHARAP (MREF-POINTER PTYPE_STR 0))
  814.                       (CONS 'XRMVALUEPTR (MREF-POINTER PVALUE 0)))))
  815. (DEFINE-FOREIGN XRMQGETRESOURCE*
  816.                 ("XrmQGetResource" (IN REP/C-POINTER)
  817.                                    (IN REP/C-POINTER)
  818.                                    (IN REP/C-POINTER)
  819.                                    (IN REP/EXTEND)
  820.                                    (IN REP/EXTEND))
  821.                 REP/INTEGER)
  822. (DEFINE (XRMQGETRESOURCE DB NAMES CLASSES)
  823.         (LET* ((DB (CHK-XRMHASHBUCKET DB))
  824.                (NAMES (CHK-INTAP NAMES))
  825.                (CLASSES (CHK-INTAP CLASSES))
  826.                (PTYPE (MAKE-BYTEV 4))
  827.                (PVALUE (MAKE-BYTEV 4))
  828.                (RETURN-VALUE (XRMQGETRESOURCE* DB NAMES CLASSES PTYPE PVALUE)))
  829.               (RETURN RETURN-VALUE
  830.                       (MREF-INTEGER PTYPE 0)
  831.                       (CONS 'XRMVALUEPTR (MREF-POINTER PVALUE 0)))))
  832. (DEFINE-FOREIGN XRMQGETSEARCHLIST*
  833.                 ("XrmQGetSearchList" (IN REP/C-POINTER)
  834.                                      (IN REP/C-POINTER)
  835.                                      (IN REP/C-POINTER)
  836.                                      (IN REP/INTEGER)
  837.                                      (IN REP/INTEGER))
  838.                 REP/INTEGER)
  839. (DEFINE (XRMQGETSEARCHLIST DB NAMES CLASSES SEARCHLIST LISTLENGTH)
  840.         (LET* ((DB (CHK-XRMHASHBUCKET DB))
  841.                (NAMES (CHK-INTAP NAMES))
  842.                (CLASSES (CHK-INTAP CLASSES))
  843.                (SEARCHLIST SEARCHLIST)
  844.                (LISTLENGTH LISTLENGTH)
  845.                (RETURN-VALUE (XRMQGETSEARCHLIST* DB
  846.                                                  NAMES
  847.                                                  CLASSES
  848.                                                  SEARCHLIST
  849.                                                  LISTLENGTH)))
  850.               RETURN-VALUE))
  851. (DEFINE-FOREIGN XRMQGETSEARCHRESOURCE*
  852.                 ("XrmQGetSearchResource" (IN REP/INTEGER)
  853.                                          (IN REP/INTEGER)
  854.                                          (IN REP/INTEGER)
  855.                                          (IN REP/EXTEND)
  856.                                          (IN REP/EXTEND))
  857.                 REP/INTEGER)
  858. (DEFINE (XRMQGETSEARCHRESOURCE SEARCHLIST NAME CLASS)
  859.         (LET* ((SEARCHLIST SEARCHLIST)
  860.                (NAME NAME)
  861.                (CLASS CLASS)
  862.                (PTYPE (MAKE-BYTEV 4))
  863.                (PVAL (MAKE-BYTEV 8))
  864.                (RETURN-VALUE (XRMQGETSEARCHRESOURCE* SEARCHLIST
  865.                                                      NAME
  866.                                                      CLASS
  867.                                                      PTYPE
  868.                                                      PVAL)))
  869.               (RETURN RETURN-VALUE
  870.                       (MREF-INTEGER PTYPE 0)
  871.                       (CONS 'XRMVALUEPTR PVAL))))
  872. (DEFINE-FOREIGN XRMMERGEDATABASES*
  873.                 ("XrmMergeDatabases" (IN REP/C-POINTER) (IN REP/C-POINTER))
  874.                 IGNORE)
  875. (DEFINE (XRMMERGEDATABASES NEW INTO)
  876.         (LET* ((NEW (CHK-XRMDATABASE NEW))
  877.                (INTO (CHK-XRMDATABASEP INTO))
  878.                (RETURN-VALUE (BLOCK (XRMMERGEDATABASES* NEW INTO) '())))
  879.               RETURN-VALUE))
  880. (DEFINE-FOREIGN XRMGETFILEDATABASE*
  881.                 ("XrmGetFileDatabase" (IN REP/STRING))
  882.                 REP/POINTER)
  883. (DEFINE (XRMGETFILEDATABASE FILENAME)
  884.         (LET* ((FILENAME (IF (STRING? FILENAME)
  885.                              (STRING->ASCIZ! FILENAME)
  886.                              (ERROR "Argument is incorrect type: ~s" FILENAME)))
  887.                (RETURN-VALUE (CONS 'XRMDATABASE
  888.                                    (XRMGETFILEDATABASE* FILENAME))))
  889.               RETURN-VALUE))
  890. (DEFINE-FOREIGN XRMPUTFILEDATABASE*
  891.                 ("XrmPutFileDatabase" (IN REP/C-POINTER) (IN REP/STRING))
  892.                 IGNORE)
  893. (DEFINE (XRMPUTFILEDATABASE DB FILENAME)
  894.         (LET* ((DB (CHK-XRMDATABASE DB))
  895.                (FILENAME (IF (STRING? FILENAME)
  896.                              (STRING->ASCIZ! FILENAME)
  897.                              (ERROR "Argument is incorrect type: ~s" FILENAME)))
  898.                (RETURN-VALUE (BLOCK (XRMPUTFILEDATABASE* DB FILENAME)
  899.                                     '())))
  900.               RETURN-VALUE))
  901. (DEFINE-FOREIGN XRMGETSTRINGDATABASE*
  902.                 ("XrmGetStringDatabase" (IN REP/STRING))
  903.                 REP/POINTER)
  904. (DEFINE (XRMGETSTRINGDATABASE DATA)
  905.         (LET* ((DATA (IF (STRING? DATA)
  906.                          (STRING->ASCIZ! DATA)
  907.                          (ERROR "Argument is incorrect type: ~s" DATA)))
  908.                (RETURN-VALUE (CONS 'XRMDATABASE
  909.                                    (XRMGETSTRINGDATABASE* DATA))))
  910.               RETURN-VALUE))
  911. (DEFINE-FOREIGN XRMPARSECOMMAND*
  912.                 ("XrmParseCommand" (IN REP/C-POINTER)
  913.                                    (IN REP/C-POINTER)
  914.                                    (IN REP/INTEGER)
  915.                                    (IN REP/STRING)
  916.                                    (IN REP/C-POINTER)
  917.                                    (IN REP/C-POINTER))
  918.                 IGNORE)
  919. (DEFINE (XRMPARSECOMMAND PDB OPTIONS NUM_OPTIONS PREFIX ARGC ARGV)
  920.         (LET* ((PDB (CHK-XRMDATABASEP PDB))
  921.                (OPTIONS (CHK-XRMOPTIONDESCLIST OPTIONS))
  922.                (NUM_OPTIONS NUM_OPTIONS)
  923.                (PREFIX (IF (STRING? PREFIX)
  924.                            (STRING->ASCIZ! PREFIX)
  925.                            (ERROR "Argument is incorrect type: ~s" PREFIX)))
  926.                (ARGC (CHK-INTP ARGC))
  927.                (ARGV (CHK-CHARPAP ARGV))
  928.                (RETURN-VALUE (BLOCK (XRMPARSECOMMAND* PDB
  929.                                                       OPTIONS
  930.                                                       NUM_OPTIONS
  931.                                                       PREFIX
  932.                                                       ARGC
  933.                                                       ARGV)
  934.                                     '())))
  935.               RETURN-VALUE))
  936. (DEFINE-FOREIGN XSAVECONTEXT*
  937.                 ("XSaveContext" (IN REP/C-POINTER)
  938.                                 (IN REP/INTEGER)
  939.                                 (IN REP/INTEGER)
  940.                                 (IN REP/C-POINTER))
  941.                 REP/INTEGER)
  942. (DEFINE (XSAVECONTEXT DISPLAY WINDOW CONTEXT DATA)
  943.         (LET* ((DISPLAY (CHK-DISPLAYP DISPLAY))
  944.                (WINDOW WINDOW)
  945.                (CONTEXT CONTEXT)
  946.                (DATA (CHK-CHARAP DATA))
  947.                (RETURN-VALUE (XSAVECONTEXT* DISPLAY WINDOW CONTEXT DATA)))
  948.               RETURN-VALUE))
  949. (DEFINE-FOREIGN XFINDCONTEXT*
  950.                 ("XFindContext" (IN REP/C-POINTER)
  951.                                 (IN REP/INTEGER)
  952.                                 (IN REP/INTEGER)
  953.                                 (IN REP/EXTEND))
  954.                 REP/INTEGER)
  955. (DEFINE (XFINDCONTEXT DISPLAY WINDOW CONTEXT)
  956.         (LET* ((DISPLAY (CHK-DISPLAYP DISPLAY))
  957.                (WINDOW WINDOW)
  958.                (CONTEXT CONTEXT)
  959.                (DATA (MAKE-BYTEV 4))
  960.                (RETURN-VALUE (XFINDCONTEXT* DISPLAY WINDOW CONTEXT DATA)))
  961.               (RETURN RETURN-VALUE (CONS 'CHARAP (MREF-POINTER DATA 0)))))
  962. (DEFINE-FOREIGN XDELETECONTEXT*
  963.                 ("XDeleteContext" (IN REP/C-POINTER)
  964.                                   (IN REP/INTEGER)
  965.                                   (IN REP/INTEGER))
  966.                 REP/INTEGER)
  967. (DEFINE (XDELETECONTEXT DISPLAY WINDOW CONTEXT)
  968.         (LET* ((DISPLAY (CHK-DISPLAYP DISPLAY))
  969.                (WINDOW WINDOW)
  970.                (CONTEXT CONTEXT)
  971.                (RETURN-VALUE (XDELETECONTEXT* DISPLAY WINDOW CONTEXT)))
  972.               RETURN-VALUE))
  973.